﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MaquinaJMG.GUI.Contrato;
using Logica.Comandos;
using Datos.Entidades;
using Logica.FabricaLogica;
using Datos.Entidades.FabricaEntidades;


namespace MaquinaJMG.GUI.Presentador
{
    public class PresentadorAgregarParticipante
    {
        private IContratoAgregarParticipante _creacionParticipante;

        /// <summary>
        /// Constructor de la clase
        /// </summary>
        /// <param name="creacionParticipante">
        /// Datos de la página de creación de Participante requeridos para crear un
        /// nuevo Participante
        /// </param>
        public PresentadorAgregarParticipante
            (IContratoAgregarParticipante creacionParticipante)
        {
            _creacionParticipante = creacionParticipante;
        }

        /// <summary>
        /// Código a ejecutar cuando el usuario presiona el botón Crear
        /// para crear un nuevo Participante
        /// </summary>
        /// <returns>Si la operación fue exitosa o no</returns>
        public string ClickCrear()
        {

            Entidad participante = FabricaEntidades.ObtenerParticipante();
            (participante as Participante).NombreParticipante = _creacionParticipante.Nombre.Text;
            (participante as Participante).Categoria = _creacionParticipante.categoria.SelectedIndex;

            Comando comando = FabricaComandoParticipante.CrearComandoCrearParticipante(participante);
            comando.Ejecutar();
            if (!comando.Flag)
                return "No se ha podido crear el participante!";
            else

                return "El participante fue creado con éxito!";
        }


        private List<Entidad> misCategorias = new List<Entidad>();
        public void obtenerCategoria()
        {
            Comando comando = FabricaComandoCategoria.CrearComandoListarCategoria();
            comando.Ejecutar();
            misCategorias = comando.ListaEntidad;
            if (misCategorias != null)
            {

                for (int i = 0; i < misCategorias.Count; i++)
                {

                    _creacionParticipante.categoria.Items.Add((misCategorias.ElementAt(i) as Categoria).NombreCategoria);


                }
                _creacionParticipante.categoria.DataBind();

            }

        }
    }

}